curlコマンドでJSONデータをAPIにPOSTする | 您所在的位置:网站首页 › curl post json文件 › curlコマンドでJSONデータをAPIにPOSTする |
APIの動作確認をしたいときに使えます。 今回はAPIのURIをlocalhost:5000/api/v1/とします。また、v1の後の文字列でリクエスト先を定義します。(例: ユーザ登録... localhost:5000/api/v1/users) コマンドでリクエストを投げる curl -X POST -H "Content-Type: application/json" -d "{"name" : "佐藤" , "mail" : "[email protected]"}" localhost:5000/api/v1/users-X POST : POSTでリクエストを投げるときに使います。 -H : リクエストヘッダを指定する時に使います。 今回はリクエストボディとしてjsonデータを送信したいので、Content-Type: application/json を指定しています。 -d : リクエストボディを指定します。 引数でリクエスト先のエンドポイントを指定することも忘れないように注意です。 シェルスクリプトで効率化軽く動作確認するだけならコマンド入力で問題ありませんが、別のエンドポイントにアクセスする・正常系異常系のテストをするとなれば毎回同じコマンドを入力するのは面倒です。 シェルスクリプトでAPI実行を効率化してみましょう。 今回は ・ エンドポイント ・ リクエストで投げるJSON を引数で受け取るようにしました。また、今回は/usr/local下にスクリプトを配置することにします。 postRequest.sh #/bin/bash # APIにPOSTリクエストする ### 引数一覧 # $1 : エンドポイント # $2 : リクエストボディ(JSON) ### 変数定義 # エンドポイント ENDPOINT="localhost:5000/api/v1/${1}" # リクエストボディ(JSON形式で受け取る) JSON="${2}" # リクエストを出す curl -X POST -H "Content-Type: application/json" -d "${JSON}" "${ENDPOINT}" 実行例 /bin/bash /usr/local/postRequest.sh users "{"name" : "佐藤" , "mail" : "[email protected]"}"コマンドを全て入力するよりも少ない手間でAPIを実行することができました。 余談今回はスクリプトのパスを通していないのでフルパスで実行していますが、パスを通しておくと更に少ない手間でAPIにアクセスできるでしょう。 また、どのようなJSONデータを使うのか予め決まっている場合はデータをjsonファイルに定義しておき、引数でファイルパスを渡すという方法も良いかもしれません。 |
CopyRight 2018-2019 实验室设备网 版权所有 |